package model;

import util.Constantes;

/**
 * A classe utilizada para representar as institui��ies que podem ceder ve�culos
 * aos �rg�os requisitores.
 * 
 * @author giovanni.surubim@gmail.com, p.romuloo@gmail.com
 * 
 */
public class Instituicao {

	/**
	 * Id da institui��o
	 */
	private Long id = new Long(0);
	
	/**
	 * nome da institui��o
	 */
	private String nome = null;
	
	/**
	 * Municipio onde a institui��o est� instalada
	 */
	private String municipio = null;
	
	/**
	 * Pessoa respons�vel pela institui��o
	 */	
	private String responsavel = null;
	
	/**
	 * O nome do cargo ocupado pela pessoa respons�vel pela institui��o
	 */
	private String cargoResponsavel = null;
	
	/**
	 * Tratamento que deve ser dado ao respons�vel pela institui��o
	 */
	private String tratamentoResponsavel = null;
	
	/**
	 * Endere�o da institui��o
	 */
	private String endereco = null;
	
	/**
	 * Telefone da institui��o
	 */
	private String telefone = null;
	
	/**
	 * Fax da institui��o
	 */
	private String fax = null;
	
	/**
	 * Respons�vel pela �rea de ve�culos na institui��o. Ou seja, pessoa que
	 * pode ser contactada para resolver problemas referentes � ve�culos.
	 */
	private String responsavelArea = null;
	
	/**
	 * Telefone para contato direto com o respons�vel pela �rea de ve�culos.
	 */
	private String telefoneResponsavelArea = null;
	
	/**
	 * Celular para contato direto com o respons�vel pela �rea de ve�culos.
	 */
	private String celularResponsavelArea = null;

	/**
	 * Construtor da classe Institui��o.
	 * 
	 * @param nome
	 *            Nome da Institui��o
	 * @param municipio
	 *            Munic�pio da Institui��o
	 * @param responsavel
	 *            Pessoa respons�vel pela Institui��o
	 * @param cargoResponsavel
	 *            Cargo do respons�vel pela Institui��o
	 * @param tratamentoResponsavel
	 *            Tratamento dado ao respons�vel pela Institui��o
	 * @param endereco
	 *            Endere�o da Institui��o
	 * @param telefone
	 *            Telefone da Institui��o
	 * @param fax
	 *            Fax da Institui��o
	 * @param responsavelArea
	 *            Respons�vel pela �rea de ve�culos
	 * @param telefoneResponsavelArea
	 *            Telefone para contato com respons�vel pela �rea de ve�culos
	 * @param celularResponsavelArea
	 *            Celular para contato com respons�vel pela �rea de ve�culos
	 */
	public Instituicao(String nome, String municipio, String responsavel,
			String cargoResponsavel, String tratamentoResponsavel,
			String endereco, String telefone, String fax,
			String responsavelArea, String telefoneResponsavelArea,
			String celularResponsavelArea) {
		this.nome = nome;
		this.municipio = municipio;
		this.responsavel = responsavel;
		this.cargoResponsavel = cargoResponsavel;
		this.tratamentoResponsavel = tratamentoResponsavel;
		this.endereco = endereco;
		this.telefone = telefone;
		this.fax = fax;
		this.responsavelArea = responsavelArea;
		this.telefoneResponsavelArea = telefoneResponsavelArea;
		this.celularResponsavelArea = celularResponsavelArea;
	}

	/**
	 * Construtor da classe Institui��o sem par�metros. Todos os atributos s�o
	 * inicializados com valor null.
	 */
	public Instituicao() {

	}

	/**
	 * Construtor da classe Institui��o.
	 * 
	 * @param nome
	 *            Nome da Institui��o
	 * @param municipio
	 *            Munic�pio da Institui��o
	 * @param responsavel
	 *            Pessoa respons�vel pela Institui��o
	 * @param responsavelArea
	 *            Respons�vel pela �rea de ve�culos
	 */
	// TODO
	public Instituicao(String nome, String municipio, String responsavel,
			String responsavelArea) {
		this.nome = nome;
		this.municipio = municipio;
		this.responsavel = responsavel;
		this.responsavelArea = responsavelArea;
	}

	/**
	 * Obtem o id da Institui��o.
	 * 
	 * @return o id da Institui��o
	 */
	public Long getId() {
		return id;
	}

	/**
	 * Seta o id da Institui��o.
	 * 
	 * @param id
	 *            id da Institui��o
	 */
	public void setId(Long id) {
		this.id = id;
	}

	/**
	 * Obt�m o nome da Institui��o.
	 * 
	 * @return o nome da Institui��o.
	 */
	public String getNome() {
		return nome;
	}

	/**
	 * Seta o nome da Institui��o.
	 * 
	 * @param nome
	 *            o nome da Institui��o.
	 */
	public void setNome(String nome) {
		this.nome = nome;
	}

	/**
	 * Obt�m o munic�pio da Institui��o.
	 * 
	 * @return o munic�pio da Institui��o.
	 */
	public String getMunicipio() {
		return municipio;
	}

	/**
	 * Seta o munic�pio da Institui��o.
	 * 
	 * @param municipio
	 *            o munic�pio da Institui��o.
	 */
	public void setMunicipio(String municipio) {
		this.municipio = municipio;
	}

	/**
	 * Obt�m o respons�vel pela Institui��o.
	 * 
	 * @return o respons�vel pela Institui��o.
	 */
	public String getResponsavel() {
		return responsavel;
	}

	/**
	 * Seta o respons�vel pela Institui��o.
	 * 
	 * @param responsavel
	 *            o respons�vel pela Institui��o.
	 */
	public void setResponsavel(String responsavel) {
		this.responsavel = responsavel;
	}

	/**
	 * Obt�m o cargo do respons�vel pela Institui��o.
	 * 
	 * @return o cargo do respons�vel pela Institui��o.
	 */
	public String getCargoResponsavel() {
		return cargoResponsavel;
	}

	/**
	 * Seta o cargo do respons�vel pela Institui��o.
	 * 
	 * @param cargoResponsavel
	 *            o cargo do respons�vel pela Institui��o.
	 */
	public void setCargoResponsavel(String cargoResponsavel) {
		this.cargoResponsavel = cargoResponsavel;
	}

	/**
	 * Obt�m o tratamento dado ao respons�vel pela Institui��o.
	 * 
	 * @return o tratamento dado ao respons�vel pela Institui��o.
	 */
	public String getTratamentoResponsavel() {
		return tratamentoResponsavel;
	}

	/**
	 * Seta o tratamento dado ao respons�vel pela Institui��o.
	 * 
	 * @param tratamentoResponsavel
	 *            o tratamento dado ao respons�vel pela Institui��o.
	 */
	public void setTratamentoResponsavel(String tratamentoResponsavel) {
		this.tratamentoResponsavel = tratamentoResponsavel;
	}

	/**
	 * Obt�m o endere�o da Institui��o.
	 * 
	 * @return o endere�o da Institui��o.
	 */
	public String getEndereco() {
		return endereco;
	}

	/**
	 * Seta o endere�o da Institui��o.
	 * 
	 * @param endereco
	 *            o endere�o da Institui��o.
	 */
	public void setEndereco(String endereco) {
		this.endereco = endereco;
	}

	/**
	 * Obt�m o telefone da Institui��o.
	 * 
	 * @return o telefone da Institui��o.
	 */
	public String getTelefone() {
		return telefone;
	}

	/**
	 * Seta o telefone da Institui��o.
	 * 
	 * @param telefone
	 *            o telefone da Institui��o.
	 */
	public void setTelefone(String telefone) {
		this.telefone = telefone;
	}

	/**
	 * Obt�m o fax da Institui��o.
	 * 
	 * @return o fax da Institui��o.
	 */
	public String getFax() {
		return fax;
	}

	/**
	 * Seta o fax da Institui��o.
	 * 
	 * @param fax
	 *            o fax da Institui��o.
	 */
	public void setFax(String fax) {
		this.fax = fax;
	}

	/**
	 * Obt�m o respons�vel pela �rea de ve�culos da Institui��o.
	 * 
	 * @return o respons�vel pela �rea de ve�culos da Institui��o.
	 */
	public String getResponsavelArea() {
		return responsavelArea;
	}

	/**
	 * Seta o respons�vel pela �rea de ve�culos da Institui��o.
	 * 
	 * @param responsavelArea
	 *            o respons�vel pela �rea de ve�culos da Institui��o.
	 */
	public void setResponsavelArea(String responsavelArea) {
		this.responsavelArea = responsavelArea;
	}

	/**
	 * Obt�m o telefone para contato com o respons�vel pela �rea de ve�culos da
	 * Institui��o.
	 * 
	 * @return o telefone para contato com o respons�vel pela �rea de ve�culos
	 *         da Institui��o.
	 */
	public String getTelefoneResponsavelArea() {
		return telefoneResponsavelArea;
	}

	/**
	 * Seta o telefone para contato com o respons�vel pela �rea de ve�culos da
	 * Institui��o.
	 * 
	 * @param telefoneResponsavelArea
	 *            o telefone para contato com o respons�vel pela �rea de
	 *            ve�culos da Institui��o.
	 */
	public void setTelefoneResponsavelArea(String telefoneResponsavelArea) {
		this.telefoneResponsavelArea = telefoneResponsavelArea;
	}

	/**
	 * Obt�m o celular para contato com o respons�vel pela �rea de ve�culos da
	 * Institui��o.
	 * 
	 * @return o celular para contato com o respons�vel pela �rea de ve�culos da
	 *         Institui��o.
	 */
	public String getCelularResponsavelArea() {
		return celularResponsavelArea;
	}

	/**
	 * Seta o celular para contato com o respons�vel pela �rea de ve�culos da
	 * Institui��o.
	 * 
	 * @param celularResponsavelArea
	 *            o celular para contato com o respons�vel pela �rea de ve�culos
	 *            da Institui��o.
	 */
	public void setCelularResponsavelArea(String celularResponsavelArea) {
		this.celularResponsavelArea = celularResponsavelArea;
	}

	/**
	 * Obt�m as informa��es da Institui��o em forma de String.
	 * 
	 * @return as informa��es da Institui��o em forma de String.
	 */
	public String toString() {
		return "Nome: " + nome + ", responsavel: " + responsavel;
	}
}
